home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / c / tcxl551.zip / TCXL_INC.EXE / lha / INC / TCXLFAR.H < prev    next >
Text File  |  1990-10-01  |  2KB  |  53 lines

  1. /*=====[ The TesSeRact(TM) CXL User Interface Development System ]======*
  2.  | Copyright (c) 1987-1990, Innovative Data Concepts. All Rights Reserved
  3.  |
  4.  | This Library is part of IDC's TesSeRact Development Tools product
  5.  | line. For information about other IDC products, call 1-215-884-3373.
  6.  *----------------------------------------------------------------------*
  7.  | <TCXLfar.h> : Definitions and prototypes for handling explicit, typed
  8.  | far-pointers as used internally in TCXL 5.5.
  9.  *-------------------------------[ NOTES ]------------------------------*
  10.  | 1) The _XxxFar() aliases take full far pointers and the _FarXxx()
  11.  |    functions take separate segments and offsets.
  12.  | 2) The MK_FP() and MK_FPT() macros will override system definitions
  13.  |    and provide compiler-independence.
  14.  | 3) MK_FPT() is *very* useful in C++, where void pointers are not
  15.  |    usually allowed without bizarre casts.
  16.  *----------------------------------------------------------------------*
  17.  | PGS : $Id: tcxlfar.h 5.51 90/10/01 00:00:00 MLM Release Locker: MLM $
  18.  | $Log:    tcxlfar.h $
  19.  | Revision 5.51  90/10/01  00:00:00  MLM
  20.  | TCXL 5.51
  21.  | 
  22.  *======================================================================*/
  23. #ifndef  _TCXLfar_
  24. #  define   _TCXLfar_ 1       /* only once! */
  25. #  ifndef   _TCXLdef_
  26. #     include  <TCXLdef.h>    /* standards */
  27. #  endif
  28.  
  29. #ifdef   MK_FP             /* use local definitions */
  30. #  undef    MK_FP
  31. #endif                     /* anonymous far-pointer */
  32. #define  MK_FP(s,o)     ((AnyFP) (((DwdT)(s) << 16) | (WrdT)(o)))
  33. #ifdef   MK_FPT
  34. #  undef    MK_FPT
  35. #endif                     /* typed far-pointer */
  36. #define  MK_FPT(t,s,o)  ((t FAR *) (((DwdT)(s) << 16) | (WrdT)(o)))
  37.  
  38. /*------------------------[ Function prototypes ]----------------------*/
  39.  
  40. #ifdef   __cplusplus          /* no mangling, please */
  41.    extern   "C"   {
  42. #endif
  43. VOID  PAS   _FarCpy(WrdT st, WrdT ot, WrdT sf, WrdT of, WrdT n);
  44. VOID  PAS   _CpyFar(BytFP t, BytFP f, WrdT n);              /* alias */
  45. VOID  PAS   _FarGet(BytP p, WrdT s, WrdT o, WrdT n);
  46. VOID  PAS   _GetFar(BytP t, BytFP f, WrdT n);               /* alias */
  47. VOID  PAS   _FarPut(WrdT s, WrdT o, BytP p, WrdT n);
  48. VOID  PAS   _PutFar(BytFP t, BytP f, WrdT n);               /* alias */
  49. #ifdef   __cplusplus
  50.    }
  51. #endif
  52. #endif   /* _TCXLfar_ -- End of TCXLfar.h */
  53.